CPE 332
Computer Engineering
Mathematics II
Week 10
Part III, Chapter 8
Error, Transcendental Function and Power Series Taylor Series and Function Approximation
• Numerical Methods
• Errors
• Transcendental Function
• Series
• Power Series
• Taylor Series
• MacLaurin Series
• Function Approximation
• HW VII
• MT Exam and Cumulative Grades
• ในวิชาคณิตศาสตร์ที่เราเรียนที่ผ่านมา การหา
Solution จะประกอบด ้วยการแก ้สมการ ซึ่งรวมถึง
การแก ้สมการพิคณิต การหา Derivative การ
Integrate การแก ้สมการ Differential
Equation รวมถึงการใช ้เครื่องมือทางคณิตศาสตร์
เพื่อแก ้สมการ เช่น Fourier Transform,
Laplace Transform หรือ Z-Transform
วิธีการดังกล่าวจัดว่าเป็นการแก ้ปัญหาที่เรียก
Analytical Method อย่างไรก็ตาม ไม่ใช่ว่า
สมการทุกสมการจะหาคําตอบได ้(ที่อยู่ในรูปของ
Explicit Form) ดังนั้นเราจําเป็นที่จะต ้องหาวิธีอื่น
ในการแก ้ปัญหา นั่นก็คือวิธีการที่เรียก Numerical Method
• วิธีการทาง Numerical ที่เคยใช ้กันมาได ้แก่วิธีการ
Graphical Method และใช ้บวนการ
Interpolation แต่เมื่อมีการประดิษฐ์คอมพิวเตอร์
ขึ้นมา ก็มีการนําคอมพิวเตอร์เข ้ามาใช ้ และขยาย
ขอบเขตของวิชานี้ออกเป็นสาขาใหม่ทาง
คณิตศาสตร์ มีการศึกษา Algorithm และวิธีการ
เขียนโปรแกรม รวมถึงการวิเคราะห์ค่าความ
ผิดพลาด(Error Analysis) และลักษณะการ
Convergence และ Complexity ของ
Algorithm
Y=f(x)=2x3-4x2-7x+5
• หา f(k) เช่น f(0), f(-2), f(7) ง่าย
• แก ้สมการ f(x)=k จะยาก เช่น หาค่า x ที่ทําให ้ f(x) = 0
• Polynomial Degree = 1, Straight Line
– y = f(x) = mx+b; x = (y-b)/m
• Polynomial Degree = 2
• y = f(x) = ax2+bx+c
• แก ้สมการ y = f(x) = 3 เราได ้
– y’ = f’(x) = ax2+bx+(c-3) = 0
– x = [-b±√(b2-4a(c-3))]/2a
• Polynimial Degree = n, n > 2
– ไม่มีสมการโดยตรงในการแก ้,
– แต่มี Algorithm ในวิธีของ Numerical Method
• Algorithm จะเป็น Iterative Method
– คําตอบของ Numerical Method จะให ้แค่ค่าประมาณ
• ค่าจะถูกต ้องขึ้นเรื่อยๆ ใน Iteration ที่สูงขึ้น (คํานวณนานขึ้น) ถ ้า
Algorithm Converge
Iterative
Iteration = 0
Set et
Technique
Init. X0
[Iteration i]
Iteration += 1
โปรแกรมจะ Converge
Calculate xi
ถ้า ei < ei-1
Estimate ei
N
Y
Error e
Stop
i < es
• ในการนําคอมพิวเตอร์มาช่วยแก ้ปัญหา
ทางด ้านคณิตศาสตร์นั้น จะต ้องเข ้าใจก่อน
ว่าลักษณะการทํางานของคอมพิวเตอร์ หรือ
การคํานวณจะขึ้นอยู่กับวิธีการที่เราเขียน
โปรแกรมและ Algorithm ที่ใช ้ ในการ
คํานวณโดยใช ้เครื่องคํานวณใดใดจะมี
Error เกิดขึ้นเสมอ ซึ่งจะแบ่งได ้เป็นสอง
ประเภทคือ Round- Off Error และ
Truncation Error
• Round- Off Error เก ิดจากการเก็บ
ต ัวเลขใน Memory ของคอมพ ิวเตอร ์น ั�น
จะใช ้ขนาดของ Memory ที่จําก ัด และ
ข �ึนอยู่ก ับว่าเราให้ต ัวแปรชน ิดอะไร เช ่น
Integer, Long Integer, Float, หร ือ
Double
• Truncation Error เก ิดจาก Algorithm
หร ือวิธีที่เราให้คอมพ ิวเตอร ์คํานวณ น ั�น
เป็นแค่การประมาณ จากสมการทาง
คณ ิตศาสตร ์ที่เราต ้องการหาค่าโดยใช ้
คอมพ ิวเตอร ์เข ้าช ่วย และเราไม่ได ้แก ้
สมการทางคณ ิตศาสตร ์จร ิงๆ
– การคํานวณ จะต ้องม ีการบวกก ันของ
Infinite Terms จึงจะได ้ค่าที่ถูกต ้อง
ด ังน ั�นคอมพ ิวเตอร ์จะคํานวณ ค่าประมาณ
โดยต ัดเทอมท้ายๆทิ�ง
Significant Digit
• ดังนั้นเราจําเป็นที่จะต ้องรู ้ว่า Error เรามีมากแค่ไหน และ
พอจะยอมรับได ้หรือไม่ นั่นขึ้นอยู่กับการนําการคํานวณไป
ใช ้งาน ปกติตัวเลขที่จะไปใช ้งานทางวิศวกรรมศาสตร์จะ
กําหนดด ้วยค่า Significant Digit และจะยอมให ้ความไม่
แน่นอนของตกเลขตกอยู่ที่หลักท ้ายเท่านั้น ดังนั้นค่าของ
Significant Digit จะบ่งบอกถึงจํานวนหลักของตัวเลขที่
จะนําไปใช ้ได ้อย่างมั่นใจ
• คําว่า Accuracy หมายถึงตัวเลขที่เราได ้นั้นมีค่าใกล ้เคียง
กับค่าในความเป็นจริงเท่าไร แต่คําว่า Precision หมายถึง
ตัวเลขที่ได ้มานั้นเกาะกลุ่มกันมากแค่ไหน ดังนั้นค่าของ
Precision จะเป็นตัวกําหนดจํานวนของ Significant Digit ที่จะต ้องใช ้ และค่าของ Error จะเป็นตัวกําหนด
ความ Accuracy ของตัวเลข
Precision = ตํ่า
Precision = สูง
Accuracy = ตํ่า
Accuracy = ตํ่า
Precision = ตํ่า
Precision = สูง
Accuracy = สูง
Accuracy = สูง
Accuracy ว ัดจากค่า Error ที่เกิดระหว่างค่าเฉล่ียของ Data ก ับค่าจริง
Precision ว ัดจากค่า Variance หรือ SD ของกลุ่มของ Data
• คือตัวเลขที่มีความหมายในการกําหนดค่า
Precision
– เป็นเลขทุกตัวยกเว ้นเลขศูนย์นําหน ้า และศูนย์ที่
ต่อท ้าย
• จํานวนศูนย์ต่อท ้ายที่เป็นส่วนของ s.f. บางทีเรากําหนด
โดยใช ้เครื่องหมาย ‘bar’
• Examples
– 11.152 = 5 s.f.
– 0.00879 = 3 s.f.
– 000125600. = 6 s.f.
– 0123400000 = 7 s.f.
• เลขทางขวามือของ s.f. จะไม่นํามาใส่ ให ้ทํา
การ Round-Off เช่น
– 456.389864 (6 s.f.) = 456.390
– 1287563.94 (3 s.f.) = 1290000
• คือค่าที่แตกต่างจากค่าที่แท ้จริง
• เป็นตัวกําหนดค่า Accuracy
• แบ่งเป็น
– Absolute Error, Et
– Relative Error (%จากค่าจริง), et
• นอกจากนี้ยังมี
– Estimated Error, ea
• ค่าประมาณของ Error (Relative Error)
Absolute Error
Relative Error
Error Estimation
• Convergence
• Divergence
• ในการเปรียบเทียบความแตกต่างระหว่างค่าที่
แท ้จริงกับค่าที่ประมาณได ้ สําหรับกลุ่มของ
ตัวอย่าง เรามักจะใช ้ค่าเฉลี่ยของ Error ในรูปของ
ค่าเฉลี่ยของกําลังสองของ Error ในแต่ละคู่ เรียก
Mean Square Error
– ถ ้าให ้ Y เป็นค่าที่แท ้จริง และ
Yˆ เป็นค่าที่ประมาณได ้
สําหรับคู่ของตัวอย่าง N ตัวอย่าง
1
1 N
MSE =
∑− ˆ
( Y −
2
Y )
i
i
N i=0
– ค่า RMSE หรือค่า Root Mean Square Error คือค่า
Square Root ของค่า MSE
N 1
RMSE =
1 ∑− ˆ( Y − 2
Y )
i
i
N i=0
• เป็นความสัมพันธ์แสดง Set ของ Input
และ Set ของ Output
– Function สามารถรับค่า Input ได ้หลาย Set
(หลายตัวแปร)
– การ Mapping เป็นทางเดียว
• ถ ้า Map กลับจะเป็น อีก Function ที่เป็น Inverse Function กับตัวเดิม
• Inverse อาจจะไม่มีสําหรับบาง Function
x
y
f(.)
y=f(x)
x=f-1(y) อาจจะไม่มี
• เป็นรูปแบบของ Function ที่ง่ายที่สุด
• Polynomial function Degree ‘n’ จะอยู่ใน
รูปของ(One Argument)
n
n−
y = f ( x) = a x + a x 1 + + a x 2 + a x + a n
n −1
2
1
0
n
n
= ∑ i
a x = a +
a x
i
0
∑ ii
i =0
i =1
Polynomial of degree 2:
f(x) = x2 - x - 2
= (x+1)(x-2) Polynomial of degree 3:
f(x) = x3/4 + 3x2/4 - 3x/2 - 2
= 1/4 (x+4)(x+1)(x-2)
Polynomial of degree 4:
f(x) = 1/14 (x+4)(x+1)(x-1)(x-3) + 0.5
Polynomial of degree 5:
f(x) = 1/20 (x+4)(x+2)(x+1)(x-1)(x-3) + 2
เอามาจาก
http://en.wikipedia.org/wiki/Polynomial
Polynomial of degree 6:
Polynomial of degree 7:
f(x) = 1/30 (x+3.5)(x+2)(x+1)(x-1)(x-3)(x-4) + 2
f(x) = (x-3)(x-2)(x-1)(x)(x+1)(x+2)(x+3)
• เป็น Function ที่ไม่ใช่ Algebraic
– Algebraic function คือ Function ที่สามารถ
นิยามได ้จาก Root ของสมการ Polynomial
• Transcendental Function ไม่สามารถ
เขียนในรูป Solution ของ Polynomial
– Exponential Function
– Logarithm
– Trigonometric Functions
• ด ้วยเหตุผลนี้ การหาค่าของ Function
อาจจะต ้องใช ้วิธีการประมาณค่าแทน
f ( x) = π
x
1
f ( x) = cx , c ≠ 1
,
0
2
f ( x) = xx
3
1
f ( x) = x x
4
f ( x) = log x, c ≠ 1
,
0
5
c
f ( x) = sin x
6
• ในส่วนนี้เราจะ Review เรื่อง
– Infinite Series
– Power Series
– Taylor Series
– Maclaurin Series
– การประมาณค่าโดยใช ้ Series
• Series คือผลรวมของเทอมใน Sequence ใน
กรณีของ Infinite Series นั้น เทอมที่จะต ้อง
นํามาบวกกันจะไม่มีที่สิ้นสุด
• ถ ้าให ้แต่ละเทอมใน Sequence เป็น an ดังนั้น
Series คือ a1+a2+a3+… เช่น
∞
S = ∑ a = a + a + a +
n
1
2
3
n=1
∞
a = 1
S =
n
n
∑ 1
;
= 1 + 1 + 1 +
2
n
n=1 2
2
4
8
• NOTE: บางครั้ง Index ของ Summation อาจจะเริ่มที่ 0 ก็ได ้
• Series จะ Converge ก็ต่อเมื่อผลรวมของ
Term สามารถหาค่าได ้
– กล่าวคือผลรวมของเทอมจนถึง N มี Limit
N
S = ∑
∞
a = lim S = lim
a
n
N
∑
N →∞
N →∞
n
n=0
n=0
• ถ ้า Series ไม่ Converge มันจะ Diverge
• Power Series เป็น Infinite Series ใน
รูปของ (c = Constant, an = coefficient,
x เป็น Variable ที่อยู่รอบๆ c)
f ( x) = ∑
∞
a ( x −
n
c)
n
n=0
– Power Series ที่สําคัญคือ Taylor Series
• ในกรณีที่ c=0 เราได ้
f ( x) = ∑∞ a xn = a + a x+ 2
a x +
3
a x +
n
0
1
2
3
n=0
– เช่นในกรณีของ Maclaurin Series
Taylor Series/Maclaurin Series
• ให ้ f(x) เป็น Function ที่สามารถหา
Derivative ได ้อย่างไม่จํากัดในช่วง
ใกล ้เคียงกับ a ดังนั้น Taylor Series ของ
f(x) คือ Power Series ในรูปของ
(3)
( n)
f a
f
a
f
a
f
a
f ( a) +
'( )
''( )
( )
( )
2
3
n
( x− a)+
( x − a) +
( x − a) + = ∑
∞
( x − a)
!
1
!
2
!
3
n
n=
!
0
• ในกรณีที่ a = 0 บางครั้งเราเรียก Maclaurin Series
(3)
( n)
f
f
f
f
f ( x) = f ( )
0 +
'( )
0 x + ''( )
0
(0)
(0)
2
x +
3
x + = ∑
∞
n
x
!
1
!
2
!
3
n
n=
!
0
(3)
(4)
f ''( a)
f
( a)
f
( a)
• จาก
f ( x) = f( a)+ f '( a)( x− a)+
( x −
2
a) +
( x −
3
a) +
( x −
4
a) + ...
!
2
!
3
!
4
(3)
(4)
f
f
f
f ( x) = f (0) + f '(0) x +
''( )
0
( )
0
( )
0
2
x +
3
x +
4
x + ..
!
2
!
3
!
4
Suppos
e f ( x) = x
e , f '( x) = x
( n)
e ,..., f
( x) = x
e ⇒
( n)
f
( )
0 = 1
2
3
4
k
x
x
x
x
ha
We
ve f ( x) = x
e = 1+ x +
+
+
+ ... = ∑∞
!
2
!
3
!
4
k
k =
!
0
Example f
ind f ( )
2
2
= e
2
4
Second O
rder A
pproximat ion : e ≈ 1 + 2 +
= 5
2
2
4
8
16
Forth Order A
pproximat ion : e ≈ 1 + 2 +
+ +
= 7
2
6
24
2
4
8
16
32
64
Sixth Order A
pproximat ion : e ≈ 1 + 2 +
+ +
+
+
= .
7 356
2
6
24
120
720
2
4
8
16
32
64
128
256
Eighth Order A
pproximat ion : e ≈ 1 + 2 +
+ +
+
+
+
+
= 3873
.
7
2
6
24
120
720
5040
40320
Actual V
alue : 2
e = 7 389056099
.
นักศึกษาหาค่าประมาณของ e-2 ถึง 4 Significant Digit ได ้หรือไม่
(3)
(4)
f
f
f
f ( x) = f ( )0 + f '( a) x + ''( )0
( )
0
( )
0
2
x +
3
x +
4
x + ..
!
2
!
3
!
4
Suppos
e f ( x) = sin x, f '( x) = cos x, f ''( x) = − sin x, f '''( x) = −
(4)
cos x, f
= sin( x),...
3
5
7
n
x
x
x
ha
We
ve f ( x) = sin x = 0 + x + 0 −
+ 0 +
+ 0 −
+ ... = ∑∞ (− )1
2 n+1
x
!
3
!
5
!
7
n
n=
(2
)!
1
0
+
Example f
ind f (0 )
5
.
= sin .
0 5 radian
Second O
rder A
pproximat ion s
: in 0 5
. ≈
5
.
0
5
.
0 3
Fort O
h rder A
pproximat ion : sin 0 5
. ≈
5
.
0
−
= 47916
.
0
667
!
3
5
.
0 3
5
.
0 5
Sixth Order A
pproximat ion : sin 0 5
. ≈
5
.
0
−
+
= 47942
.
0
708
!
3
!
5
5
.
0 3
5
.
0 5
5
.
0 7
Eighth Order A
pproximat ion : sin 0 5
. ≈
5
.
0
−
+
−
= 47942
.
0
5533
!
3
!
5
!
7
Actual V
alue : sin 0 5
. = .
0 479425538
นักศึกษาหาค่าประมาณของ cos 0.5 ถึง 8 Significant Digit ได ้หรือไม่
∞
n
2
3
4
x
x
x
x
xe =∑ =1+ x+ + + +;∀ x
n
n=
!
!
2
!
3
!
4
0
n
x
log(1− x) = −∑
∞
; −1 ≤ x < 1
n
n=1
n
x
log(1+ x) = ∑
∞
n+
(−
1
)
1
; −1 < x ≤ 1
n
n=1
1
= ∑∞ n
x ; x < 1
1− x
n=0
m+
1−
1
m
x
= ∑ n
x ; x ≠ 1
1− x
n=0
x
=
n
nx ; x
1
2
∑∞
<
1
( − x)
n=0
n
n
1+ x
∑∞ (−
=
)
1 (2 )!
n
x = 1+ 1 x − 1 2
x + 1 3
x − 5
4
x + ; x < 1
2
2
8
16
128
n n
n
n=
1
(
2 )( !) (4 )
0
−
n
3
5
x
x
sin x = ∑
∞
(− )
1
2 n+1
x
= x −
+
−; ∀ x
n
n=
(2
)
1 !
!
3
!
5
0
+
n
x
x
cos x
∑∞ (−
2
4
=
)
1
2 n
x
= 1−
+
−; ∀ x
n
n=
(2 )!
!
2
!
4
0
• จะสาธิตการเขียน Function โดยใช ้ MATLAB
– เขียน Function ที่รับค่า Vector x และ Vector y return z1 และ z2; x=-3:.1:3; y = -3:.1:3
– คํานวณค่า z1 = 2sin(x^2+y^2)/(x^2+y^2)
– คํานวณค่า z2 = xsiny-ycosx
– mesh (x,y,z1), (x,y,z2), (x,z1), (y,z2) และ (z1,z2)
– Surf function, shading modes
– Contour plot
• ศึกษาวิธีการเขียน Function ใน MATLAB โดยดู
จาก Tutorial 4-5
• Download HW 7
• Next Week Chapter 9: Zeros of
Functions
•
function [z1,z2]=test(x,y)
•
% function [z1,z2]=test(x,y)
•
% Test matlab program calculate z1=f(x,y)=sin(x^2+y^2)/(x^2+y^2)
•
% and z2=f(x,y)=xsiny-ysinx
•
n=length(x);
•
m=length(y);
•
z1=zeros(n,m);
•
z2=zeros(n,m);
•
for i = 1:n
•
for j= 1:m
•
t=x(i)^2+y(j)^2;
•
if (t ~= 0)
•
z1(i,j)=sin(t)/t;
•
else
•
z1(i,j)=1;
•
end
•
z2(i,j)=x(i)*sin(y(j))-y(j)*cos(x(i));
•
end
•
end
• function view2(x,y,z,az)
• mesh(x,y,z);
• view(0,az);
• for i = 0:10:360
• view(i,az);
• pause(0.05);
• end
• function view3(az)
• view(0,az);
• for i = 0:10:360
• view(i,az);
• pause(0.05);
• end